
#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <conio.h>
#include <fstream>
#include <string>
#include <vector>
#include "SdkVersion.h"

enum CommandCodes
{
	CMD_SUCCESS = 0,
	CMD_FAILED = 1<<1,
	CMD_UNKNOWN = CMD_FAILED | 1<<2,
	CMD_EMPTY = CMD_FAILED | 1<<3
};

extern std::vector<std::string> projects;
extern std::string homePath;
extern std::string versionFile;
extern Lit::Sdk::Version version;
#ifndef NDEBUG
extern bool verbose;
#else
extern bool verbose;
#endif

extern void GetDirectories(std::vector<std::string> &out, const std::string &directory, const std::string &ext, bool recurs = true);
extern bool strStartsWith( const std::string &str, const std::string &search, bool lower = false );
extern bool processCommand( const std::string &command );
extern void StringExplode(std::string str, std::string separator, std::vector<std::string>* results);
extern int treatCommands( const std::string& args );
extern std::string usage( );
extern std::string trim( const std::string &str );
extern bool file_exists(const std::string& filename);
extern std::string safePath( const std::string &p );
extern std::string findCoreVersionFile( );
extern Lit::Sdk::Version findCoreVersion( );
extern void init_report();
extern void init( );